package ocio.actions;  

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import ocio.beans.Proveedor;
import ocio.services.ProveedorService;
import ocio.services.ServiceLocator;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Clase destinataria de petición para buscar un proveedor por una 
 * cadena de texto introducida en un formulario 
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 * @version 1.0 13/05/2014
 * @see ocio.beans.Proveedor
 */
public class BuscarProveedorAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	
	private String cadena;
	private List<Proveedor> listaProveedores = new ArrayList<Proveedor>();
    private String mensaje;
  	
	  /**
	 * Método execute() de la clase ActionSupport de Struts 2. 
	 * Solicita los servicios para localizar los proveedores que tengan en su nombre 
	 * la cadena de texto introducida por el usuario.
	 * @return un string que indica la respuesta de la acción ejecutada sobre la petición del usuario
	 */
    public String execute(){	
	
		ServiceLocator serviceLocator = ServiceLocator.getServiceLocator();
		ProveedorService proveedorService = (ProveedorService)serviceLocator.getService("Proveedor");
		
		List<Object> listaP = new ArrayList<Object>();
		listaP = proveedorService.searchByNombre(cadena);
		if (listaP.size()>0){
			Iterator<Object> itr = listaP.iterator();
			while (itr.hasNext()){
				Proveedor p = new Proveedor();
				p = (Proveedor)itr.next();
				listaProveedores.add(p);
			}
			return "success";	
		} else {
			mensaje="No se han encontrado registros con el criterio de búsqueda";
			return "fail";
		}	
	}
	
	public List<Proveedor> getListaProveedores() {
		return listaProveedores;
	}

	public void setListaProveedores(List<Proveedor> listaProveedores) {
		this.listaProveedores = listaProveedores;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}
	
	public String getCadena() {
		return cadena;
	}

	public void setCadena(String cadena) {
		this.cadena = cadena;
	}
	
	
}
